A good answer might be:

Yes. But don't worry. All you need is the main ideas.

Assembly Line

The BufferedReader object uses the InputStreamReader object as its connection to System.in. This connection is made when the BufferedReader is constructed:

BufferedReader stdin = 
    new BufferedReader(inStream );

Think of this as an assembly line: System.in gets characters from the keyboard. The InputStreamReader reads the characters from System.in and hands them to the BufferedReader. The BufferedReader objects hands the data to your program when requested.

Looking at the picture you see why this is called an "input stream". Data streams in from the keyboard through several processing stages before it gets to your program. You don't have to memorize and completely understand all of this right now. It is confusing. In fact, it is here that many text books use their own simpler input methods (which usually does little more than hide what is going on).

QUESTION 11:

Look at those two statements again:

    InputStreamReader inStream = 
        new InputStreamReader( System.in ) ; 
    BufferedReader stdin = 
        new BufferedReader( inStream );

What is the variable inStream used for?